package unit

import "math"

/**
 * ByLenGetMaxInt64，指定位数，获取最大值，最大值 “9223372036854775807”
 * Params：
 *   len：长度
 * Return：
 *   指定长度下的最大数值
 */
func ByLenGetMaxInt64(len int) int64 {
	// 如果获取整数长度大于或等于 19 位，直接返回 int64 支持的最大数值
	if len >= 19 {
		return 9223372036854775807
	}
	// 如果获取一位，则直接返回 9
	if len <= 1 {
		return 9
	}
	// 遍历长度
	var num int64 = 9
	for i := 1; i < len; i++ {
		num += 9 * int64(math.Pow10(i))
	}
	return num
}

/**
 * ByLenGetMaxInt64，指定位数，获取最小值
 * Params：
 *   len：长度
 * Return：
 *   指定长度下的最小数值
 */
func ByLenGetMinInt64(len int) int64 {
	// 如果获取整数长度大于或等于 19 位，直接返回 int64 支持的最大数值
	if len >= 19 {
		return 1000000000000000000
	}
	// 如果获取一位，则直接返回 9
	if len <= 1 {
		return 0
	}
	// 返回最小值
	return int64(math.Pow10(len - 1))
}
